home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_AI / AI_081 / CBHD501 / SRC / M2 / SCSIPROC.M < prev    next >
Text File  |  1998-03-14  |  3KB  |  97 lines

  1. IMPLEMENTATION MODULE ScsiProc;
  2. (****************************************************************************
  3.  *
  4.  *
  5.  * $Source: E:\HM2\LIB\se\rcs\scsiproc.m,v $
  6.  *
  7.  * $Revision: 1.1 $
  8.  *
  9.  * $Author: S_Engel $
  10.  *
  11.  * $Date: 1996/02/03 19:34:22 $
  12.  *
  13.  * $State: Exp $
  14.  *
  15.  *****************************************************************************
  16.  * History:
  17.  *
  18.  * $Log: scsiproc.m,v $
  19.  * Revision 1.1  1996/02/03  19:34:22  S_Engel
  20.  * Initial revision
  21.  *
  22.  *
  23.  *
  24.  ****************************************************************************)
  25.  
  26.  
  27. (* Systemabhängiges *)
  28. (* IMPLEMENTATION FÜR  >>> Hänisch-Modula-2 <<< *)
  29. (*                                              *)
  30. (* Durchgeführt von Steffen Engel               *)
  31. (*                                              *)
  32. (*$S-   Stack-Checks                            *)
  33. (*$I-   keine Variablen-Initialisierung         *)
  34. (*$V-   keine arithmetischen Kontrollen         *)
  35. (*$T-   kein Bereichstest                       *)
  36. (*$Y-   keine Laufzeittests auf RETURN und CASE *)
  37. (*                                              *)
  38. (*----------------------------------------------*)
  39.  
  40.  
  41.  
  42. IMPORT SYSTEM, System;
  43.  
  44. (* Standard HM2-Libs *)
  45.  
  46. (* Eigene Libs *)
  47.  
  48. (* Projektlibs *)
  49. IMPORT ScsiDefs, ScsiIO, Scsi;
  50.  
  51.  
  52. (***************************************************************************)
  53. (*-                                                                       -*)
  54. (*- Processor Devices                                                     -*)
  55. (*-                                                                       -*)
  56. (***************************************************************************)
  57.  
  58. PROCEDURE Send(AEN : BOOLEAN; Data : SYSTEM.ADDRESS; Length : LONGCARD) : BOOLEAN;
  59. VAR
  60.   SCmd  : ScsiIO.tSCSICmd;
  61.  
  62. BEGIN
  63.  
  64.   WITH Scsi.Cmd6 DO
  65.     Command := 00AH;
  66.     LunAdr  := SYSTEM.BYTE(VAL(CHAR, Scsi.LogicalUnit+ORD(AEN)));
  67.     Adr     := Length DIV 0100H;
  68.     Len     := Length MOD 0100H;
  69.     Flags   := SYSTEM.BYTE(0);
  70.   END;
  71.   RETURN ScsiIO.Out(Scsi.SetCmd(SCmd, Scsi.Cmd6, Data, Length, ScsiIO.DefTimeout)) = 0;
  72. END Send;
  73.  
  74.  
  75. PROCEDURE Receive(Data : SYSTEM.ADDRESS; Length : LONGCARD) : BOOLEAN;
  76. VAR
  77.   SCmd  : ScsiIO.tSCSICmd;
  78.  
  79. BEGIN
  80.  
  81.   WITH Scsi.Cmd6 DO
  82.     Command := 08H;
  83.     LunAdr  := SYSTEM.BYTE(VAL(CHAR, Scsi.LogicalUnit));
  84.     Adr     := Length DIV 0100H;
  85.     Len     := Length MOD 0100H;
  86.     Flags   := SYSTEM.BYTE(0);
  87.   END;
  88.   RETURN ScsiIO.In(Scsi.SetCmd(SCmd, Scsi.Cmd6, Data, Length, ScsiIO.DefTimeout)) = 0;
  89.  
  90. END Receive;
  91.  
  92.  
  93.  
  94. BEGIN
  95.  
  96. END ScsiProc.
  97.